install.packages(c('tsibble', 'tsibbledata', 'feasts'))
also installing the dependencies ‘numDeriv’, ‘distributional’, ‘progressr’, ‘warp’, ‘fabletools’, ‘slider’

  There is a binary version available but the source version is later:
trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.2/numDeriv_2016.8-1.1.tgz'
Content type 'application/x-gzip' length 113250 bytes (110 KB)
==================================================
downloaded 110 KB

trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.2/distributional_0.3.0.tgz'
Content type 'application/x-gzip' length 533681 bytes (521 KB)
==================================================
downloaded 521 KB

trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.2/progressr_0.10.1.tgz'
Content type 'application/x-gzip' length 265811 bytes (259 KB)
==================================================
downloaded 259 KB

trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.2/warp_0.2.0.tgz'
Content type 'application/x-gzip' length 103499 bytes (101 KB)
==================================================
downloaded 101 KB

trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.2/fabletools_0.3.2.tgz'
Content type 'application/x-gzip' length 655065 bytes (639 KB)
==================================================
downloaded 639 KB

trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.2/slider_0.2.2.tgz'
Content type 'application/x-gzip' length 360768 bytes (352 KB)
==================================================
downloaded 352 KB

trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.2/tsibbledata_0.4.0.tgz'
Content type 'application/x-gzip' length 2173335 bytes (2.1 MB)
==================================================
downloaded 2.1 MB

trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.2/feasts_0.2.2.tgz'
Content type 'application/x-gzip' length 1252288 bytes (1.2 MB)
==================================================
downloaded 1.2 MB

The downloaded binary packages are in
    /var/folders/h4/vy1nwyvd5kz_n6950nl29pj80000gn/T//RtmpInwGKv/downloaded_packages
installing the source package ‘tsibble’

trying URL 'https://cran.rstudio.com/src/contrib/tsibble_1.1.2.tar.gz'
Content type 'application/x-gzip' length 1520385 bytes (1.4 MB)
==================================================
downloaded 1.4 MB

* installing *source* package ‘tsibble’ ...
** package ‘tsibble’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
*** copying figures
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (tsibble)

The downloaded source packages are in
    ‘/private/var/folders/h4/vy1nwyvd5kz_n6950nl29pj80000gn/T/RtmpInwGKv/downloaded_packages’
library(tsibble)

Attaching package: ‘tsibble’

The following objects are masked from ‘package:base’:

    intersect, setdiff, union
library(tsibbledata)

##tsibble

index : time component key: identifies the underlying structure of the data : in concojunction with the index uniquelu identifies each individual row

index_var(vic_elec)
[1] "Time"
interval(vic_elec)
<interval[1]>
[1] 30m
vic_elec %>% 
  filter(Time < as.POSIXct('2012-01-01 01:00:00', tz = 'Australia/Melbourne'))
vic_elec <- vic_elec %>% 
  mutate(year = lubridate::year(Date))

vic_elec
vic_elec %>% 
  select(year, Temperature) %>% 
  index_by(year) %>% 
  summarise(mean_temp = mean(Temperature))
vic_elec %>% 
  filter(!Holiday) %>% 
  ggplot()+
  geom_line(aes(x=Time, y = Temperature))

elec_date <- vic_elec %>%
  index_by(date = as_date(Time)) %>%
  summarise(temp_mean = mean(Temperature, na.rm = TRUE))

elec_date
floor_date()
ceiling_date()
yearweek()
yearquarter()
elec_date %>% 
  ggplot(aes(date, temp_mean))+
  geom_line()

NA
elec_m <- vic_elec %>% 
  index_by(month = month(Time, label = TRUE)) %>% 
  summarise(temp_mean = mean(Temperature, na.rm = TRUE))
elec_m
elec_m %>% 
  ggplot(aes(month, temp_mean))+
  geom_point()+
  geom_line(group = 1)

elec_year <- vic_elec %>%
  index_by(year = year(Time)) %>%
  summarise(temp_mean = mean(Temperature, na.rm = TRUE))


elec_year %>%
  ggplot(aes(x = year, y = temp_mean)) +
  geom_col(fill = "steelblue", alpha = 0.7) + 
  ylab("Mean Temperature")+ 
  xlab("year")

library(slider)
elec_rolling <- vic_elec %>% 
  mutate(
    temp_moving_avg = slide_dbl(
      .x = Temperature, 
      .f = ~ mean(., na.rm = TRUE),
      .before = 1000,
      .after = 1000
    )
  )

elec_rolling
ggplot(elec_rolling) + 
  geom_line(aes(x = Date, y = Temperature), colour = "grey") + 
  geom_line(aes(x = Date, y = temp_moving_avg), colour = "red")

elec_rolling2 <- vic_elec %>% 
  mutate(
    temp_moving_avg = slide_dbl(
      .x = Temperature, 
      .f = ~ mean(., na.rm = TRUE),
      .before = 100,
      .after = 100,
      .complete = TRUE
    )
  )
elec_rolling2
ggplot(elec_rolling2) + 
  geom_line(aes(x = Date, y = Temperature), colour = "grey") + 
  geom_line(aes(x = Date, y = temp_moving_avg), colour = "red")

#feasts

key_vars(tourism)
[1] "Region"  "State"   "Purpose"
holidays <- tourism %>% 
  filter(Purpose %in% c('Holiday', 'business')) %>% 
  group_by(State) %>% 
  summarise(Trips = sum(Trips))

holidays
holidays %>% 
  autoplot(Trips)+
  xlab('Year')

holidays %>%
  filter(State %in% c("Queensland", "New South Wales", "Victoria")) %>%
  gg_season(Trips)

holidays %>%
  filter(State %in% c("Queensland", "New South Wales", "Victoria")) %>%
  gg_subseries(Trips)

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcyhjKCd0c2liYmxlJywgJ3RzaWJibGVkYXRhJywgJ2ZlYXN0cycpKQpsaWJyYXJ5KHRzaWJibGUpCmxpYnJhcnkodHNpYmJsZWRhdGEpCmBgYAojI2B0c2liYmxlYAoKX2luZGV4XyA6IHRpbWUgY29tcG9uZW50IApfa2V5XzogaWRlbnRpZmllcyB0aGUgdW5kZXJseWluZyBzdHJ1Y3R1cmUgb2YgdGhlIGRhdGEgCiAgICAgOiBpbiBjb25jb2p1bmN0aW9uIHdpdGggdGhlIF9pbmRleF8gdW5pcXVlbHUgaWRlbnRpZmllcyBlYWNoIGluZGl2aWR1YWwgcm93CgoKYGBge3J9CnZpY19lbGVjCmBgYApgYGB7cn0KaW5kZXgodmljX2VsZWMpCmluZGV4X3Zhcih2aWNfZWxlYykKYGBgCgoKCgpgYGB7cn0Ka2V5KHZpY19lbGVjKQprZXlfdmFycyh2aWNfZWxlYykKCgppbnRlcnZhbCh2aWNfZWxlYykKYGBgCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKdmljX2VsZWMgJT4lIAogIHNlbGVjdChUaW1lLCBEZW1hbmQsIFRlbXBlcmF0dXJlKQojaWYgeW91IGRvbid0IGhhdmUgdGltZSBpdCB3aWxsIHN0aWxsIGJlIHRoZXJlIGFzIHRpbWUgaXMgdGhlIGluZGV4IGNvbApgYGAKCmBgYHtyfQp2aWNfZWxlYyAlPiUgCiAgZmlsdGVyKCFIb2xpZGF5KQpgYGAKYGBge3J9CnZpY19lbGVjICU+JSAKICBmaWx0ZXIoVGltZSA8IGFzLlBPU0lYY3QoJzIwMTItMDEtMDEgMDE6MDA6MDAnLCB0eiA9ICdBdXN0cmFsaWEvTWVsYm91cm5lJykpCmBgYApgYGB7cn0KdmljX2VsZWMgJT4lIAogIGZpbHRlcihUaW1lIDwgYXMuRGF0ZSgnMjAxMi0wMS0wMicpKQoKdmljX2VsZWMgJT4lIAogIGZpbHRlcl9pbmRleCgnMjAxMi0wMScpCmBgYApgYGB7cn0KdmljX2VsZWMgPC0gdmljX2VsZWMgJT4lIAogIG11dGF0ZSh5ZWFyID0gbHVicmlkYXRlOjp5ZWFyKERhdGUpKQoKdmljX2VsZWMKYGBgCmBgYHtyfQp2aWNfZWxlYyAlPiUgCiAgc2VsZWN0KHllYXIsIFRlbXBlcmF0dXJlKSAlPiUgCiAgZ3JvdXBfYnkoeWVhcikgJT4lIAogIHN1bW1hcmlzZShtZWFuX3RlbXAgPSBtZWFuKFRlbXBlcmF0dXJlKSkKI2l0IHN0aWxsIGdyb3VwZWQgYnkgaW5kZXggZGlkbid0IHdvcmsgCmBgYApgYGB7cn0KbGlicmFyeShsdWJyaWRhdGUpCnZpY19lbGVjICU+JSAKICBpbmRleF9ieShhc19kYXRlKFRpbWUpKSAlPiUgCiAgc3VtbWFyaXNlKG1lYW5fdGVtcCA9IG1lYW4oVGVtcGVyYXR1cmUpKQoKdmljX2VsZWMgJT4lIAogIG11dGF0ZSh0aW1lX2FzX2RhdGUgPSBhc19kYXRlKFRpbWUpLCAuYWZ0ZXIgPSBUaW1lKQpgYGAKYGBge3J9CnZpY19lbGVjICU+JSAKICBzZWxlY3QoeWVhciwgVGVtcGVyYXR1cmUpICU+JSAKICBpbmRleF9ieSh5ZWFyKSAlPiUgCiAgc3VtbWFyaXNlKG1lYW5fdGVtcCA9IG1lYW4oVGVtcGVyYXR1cmUpKQojY2hlY2sgdGhpcyB3aXRoIHRoZSBncm91cCBieSAKYGBgCmBgYHtyfQp2aWNfZWxlYyAlPiUgCiAgZmlsdGVyKCFIb2xpZGF5KSAlPiUgCiAgZ2dwbG90KCkrCiAgZ2VvbV9saW5lKGFlcyh4PVRpbWUsIHkgPSBUZW1wZXJhdHVyZSkpCmBgYApgYGB7cn0KZWxlY19kYXRlIDwtIHZpY19lbGVjICU+JQogIGluZGV4X2J5KGRhdGUgPSBhc19kYXRlKFRpbWUpKSAlPiUKICBzdW1tYXJpc2UodGVtcF9tZWFuID0gbWVhbihUZW1wZXJhdHVyZSwgbmEucm0gPSBUUlVFKSkKCmVsZWNfZGF0ZQpgYGAKYGBge3J9CmZsb29yX2RhdGUoKQpjZWlsaW5nX2RhdGUoKQp5ZWFyd2VlaygpCnllYXJxdWFydGVyKCkKYGBgCgpgYGB7cn0KZWxlY19kYXRlICU+JSAKICBnZ3Bsb3QoYWVzKGRhdGUsIHRlbXBfbWVhbikpKwogIGdlb21fbGluZSgpCiAgCmBgYApgYGB7cn0KZWxlY19tIDwtIHZpY19lbGVjICU+JSAKICBpbmRleF9ieShtb250aCA9IG1vbnRoKFRpbWUsIGxhYmVsID0gVFJVRSkpICU+JSAKICBzdW1tYXJpc2UodGVtcF9tZWFuID0gbWVhbihUZW1wZXJhdHVyZSwgbmEucm0gPSBUUlVFKSkKZWxlY19tCmBgYAoKYGBge3J9CmVsZWNfbSAlPiUgCiAgZ2dwbG90KGFlcyhtb250aCwgdGVtcF9tZWFuKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fbGluZShncm91cCA9IDEpCiN3aXRob3V0IHRoZSBncm91cCAxIHRoZXkgd2lsbCBqb2luIGphbiB0byBqYW4gYnV0IHdlIGRvbid0IGhhdmUgb3RoZXIgamFuIApgYGAKYGBge3J9CmVsZWNfeWVhciA8LSB2aWNfZWxlYyAlPiUKICBpbmRleF9ieSh5ZWFyID0geWVhcihUaW1lKSkgJT4lCiAgc3VtbWFyaXNlKHRlbXBfbWVhbiA9IG1lYW4oVGVtcGVyYXR1cmUsIG5hLnJtID0gVFJVRSkpCgoKZWxlY195ZWFyICU+JQogIGdncGxvdChhZXMoeCA9IHllYXIsIHkgPSB0ZW1wX21lYW4pKSArCiAgZ2VvbV9jb2woZmlsbCA9ICJzdGVlbGJsdWUiLCBhbHBoYSA9IDAuNykgKyAKICB5bGFiKCJNZWFuIFRlbXBlcmF0dXJlIikrIAogIHhsYWIoInllYXIiKQpgYGAKYGBge3J9CmxpYnJhcnkoc2xpZGVyKQpgYGAKCmBgYHtyfQplbGVjX3JvbGxpbmcgPC0gdmljX2VsZWMgJT4lIAogIG11dGF0ZSgKICAgIHRlbXBfbW92aW5nX2F2ZyA9IHNsaWRlX2RibCgKICAgICAgLnggPSBUZW1wZXJhdHVyZSwgCiAgICAgIC5mID0gfiBtZWFuKC4sIG5hLnJtID0gVFJVRSksCiAgICAgIC5iZWZvcmUgPSAxMDAwLAogICAgICAuYWZ0ZXIgPSAxMDAwCiAgICApCiAgKQoKZWxlY19yb2xsaW5nCmBgYAoKYGBge3J9CmdncGxvdChlbGVjX3JvbGxpbmcpICsgCiAgZ2VvbV9saW5lKGFlcyh4ID0gRGF0ZSwgeSA9IFRlbXBlcmF0dXJlKSwgY29sb3VyID0gImdyZXkiKSArIAogIGdlb21fbGluZShhZXMoeCA9IERhdGUsIHkgPSB0ZW1wX21vdmluZ19hdmcpLCBjb2xvdXIgPSAicmVkIikKYGBgCgpgYGB7cn0KZWxlY19yb2xsaW5nMiA8LSB2aWNfZWxlYyAlPiUgCiAgbXV0YXRlKAogICAgdGVtcF9tb3ZpbmdfYXZnID0gc2xpZGVfZGJsKAogICAgICAueCA9IFRlbXBlcmF0dXJlLCAKICAgICAgLmYgPSB+IG1lYW4oLiwgbmEucm0gPSBUUlVFKSwKICAgICAgLmJlZm9yZSA9IDEwMCwKICAgICAgLmFmdGVyID0gMTAwLAogICAgICAuY29tcGxldGUgPSBUUlVFCiAgICApCiAgKQplbGVjX3JvbGxpbmcyCmdncGxvdChlbGVjX3JvbGxpbmcyKSArIAogIGdlb21fbGluZShhZXMoeCA9IERhdGUsIHkgPSBUZW1wZXJhdHVyZSksIGNvbG91ciA9ICJncmV5IikgKyAKICBnZW9tX2xpbmUoYWVzKHggPSBEYXRlLCB5ID0gdGVtcF9tb3ZpbmdfYXZnKSwgY29sb3VyID0gInJlZCIpCmBgYAoKI2ZlYXN0cwoKYGBge3J9CnRvdXJpc20KCmluZGV4X3Zhcih0b3VyaXNtKQprZXlfdmFycyh0b3VyaXNtKQpgYGAKYGBge3J9CnRvdXJpc20gJT4lIAogIGRpc3RpbmN0KFB1cnBvc2UpCgp0b3VyaXNtICU+JSAKICBkaXN0aW5jdChTdGF0ZSwgUmVnaW9uLCBQdXJwb3NlKQoKYGBgCmBgYHtyfQpob2xpZGF5cyA8LSB0b3VyaXNtICU+JSAKICBmaWx0ZXIoUHVycG9zZSAlaW4lIGMoJ0hvbGlkYXknLCAnYnVzaW5lc3MnKSkgJT4lIAogIGdyb3VwX2J5KFN0YXRlKSAlPiUgCiAgc3VtbWFyaXNlKFRyaXBzID0gc3VtKFRyaXBzKSkKCmhvbGlkYXlzCmBgYApgYGB7cn0KaG9saWRheXMgJT4lIAogIGF1dG9wbG90KFRyaXBzKSsKICB4bGFiKCdZZWFyJykKYGBgCmBgYHtyfQpob2xpZGF5cyAlPiUKICBmaWx0ZXIoU3RhdGUgJWluJSBjKCJRdWVlbnNsYW5kIiwgIk5ldyBTb3V0aCBXYWxlcyIsICJWaWN0b3JpYSIpKSAlPiUKICBnZ19zZWFzb24oVHJpcHMpCmBgYApgYGB7cn0KaG9saWRheXMgJT4lCiAgZmlsdGVyKFN0YXRlICVpbiUgYygiUXVlZW5zbGFuZCIsICJOZXcgU291dGggV2FsZXMiLCAiVmljdG9yaWEiKSkgJT4lCiAgZ2dfc3Vic2VyaWVzKFRyaXBzKQpgYGAKCg==